'''
----商超管理系统（MySQL版）---
使用MySQL保存数据，实现超市日常管理中以下业务。

一、建立以下数据表并填充数据
产品表：products
列名：主键id  编号num  名称name  单价price  折扣discount

订单表：orders
列名：主键id  编号num  货品数量count  金额amount


二、实现以下菜单并实现业务:
1.查看所有商品信息；
2.查找商品（用户输入商品名称，查看价格和折扣）；
3.添加商品（id需要程序生成）；
4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
5.删除商品（根据编号）；
6.查看所有订单；
7.删除订单（根据编号）；
8.订单统计（总销量，总销售额）；
9.商品结算（添加订单）。
'''

import orm

# from orm import read_data,write_data

def show_products():
    sql = f"""
        select num,name,price,discount from products
    """
    data = orm.read_data(sql)
    if data != ():
        print("┏----编号-----商品名称-----价格-----折扣--┓")
        for product in data:
            print(f"|   {product[0]}       {product[1]}      {product[2]}     {product[3]}   |")
        print("┗-------------------------------------┛")


def get_product():
    num = input('请输入要查询的商品编码：')
    sql = f"""
        select num,name,price,discount from products where num='{num}'
    """
    data = orm.read_data(sql)
    if data != ():
        print("┏----编号-----商品名称-----价格-----折扣--┓")
        for product in data:
            print(f"|   {product[0]}       {product[1]}      {product[2]}     {product[3]}   |")
        print("┗-------------------------------------┛")
    else:
        print('商品不存在，请重新输入')
    return data


def add_product():
        num = int(input("请输入编号："))
        name = input("请输入名称：")
        price = float(input("请输入价格："))
        discount = float(input("请输入折扣："))
        sql = f"""
        insert into products values (null, {num} , '{name}', {price}, {discount} )
        """
        rows = orm.write_data(sql)
        if rows > 0:
            print(f"商品{name}添加成功！")
        else:
            print("添加失败！")



def mod_product():
    num = int(input("请输入编号："))
    price = float(input("请输入想要修改的价格："))
    discount = float(input("请输入想要修改的折扣（折扣在0-1之间）："))
    sql = f"""
    update products set price = {price}, discount = '{discount}' where num = {num}
    """
    rows = orm.write_data(sql)
    if rows > 0:
        print(f"修改成功！商品价格已修改为：{price}，折扣已修改为：{discount}")
    else:
        print("修改失败！")


def del_product():
    num = int(input("请输入想要删除的商品编号："))
    sql = f"""
    delete from products where num = {num}
    """
    rows = orm.write_data(sql)
    if rows > 0:
        print(f"删除成功！")
    else:
        print("删除失败！")


def show_orders():
    sql = """
        select num, count, amount from orders
    """
    data = orm.read_data(sql)
    if data != ():
        print("┏-----编号-----订单数量-----总金额---┓")
        for order in data:
            print(f"|   {order[0]}      {order[1]}      {order[2]}   |")
        print("┗--------------------------------┛")


def del_order():
    num = int(input("请输入想要删除的订单编号："))
    sql = f"""
    delete from orders where num = {num}
    """
    rows = orm.write_data(sql)
    if rows > 0:
        print(f"删除成功！")
    else:
        print("删除失败！")


def count_orders():
    sql = "select sum(count), sum(amount) from orders"
    data = orm.read_data(sql)
    if data != ():
        print(f'总销量为：{data[0][0]}, 总销售额为：{data[0][1]}')
    else:
        print("暂无订单")


def add_order():
    amount = 0
    count = 0
    while True:
        data = get_product()
        if data != ():
            num = int(input('请输入要购买的数量：'))
            money = data[0][2] * num
            count += num
            amount += money
            choice = int(input('请输入你的选择1继续2退出：'))
            if choice == 1:
                continue
            else:
                break
    print(f'总数量{count}总金额{amount}')
    sql = f"""
        select max(num) from orders
    """
    data = orm.read_data(sql)
    id = data[0][0] + 1
    sql = f"""
        insert into orders values(null,{id},{count},{amount})
    """
    rows = orm.write_data(sql)
    if rows > 0:
        print('订单写入成功')
    else:
        print('订单写入失败')


if __name__ == '__main__':
    # 测试一下
    # show_products()
    # get_product()
    # add_product()
    # mod_product()
    # del_product()
    # show_orders()
    # del_order()
    count_orders()
    # add_order()